package org.jiangy;

import org.jose4j.jwk.JsonWebKey;
import org.jose4j.jwk.Use;
import org.jose4j.jws.AlgorithmIdentifiers;

public interface Constants {

    /*Fixed,  resource-id */
    String RESOURCE_ID = "my-resource-id";

    /**
     * Fixed  keyId
     *
     * @since 1.1.0
     */
    String DEFAULT_KEY_ID = "my-key-id";

    /**
     * 长度 至少 1024, 建议 2048
     *
     * @since 1.1.0
     */
    int DEFAULT_KEY_SIZE = 2048;

    /**
     * keystore file name
     * JWKS（JSON Web Key Set）是一组公钥的集合，以JSON格式呈现。它的主要作用在于为JWT（JSON Web Token）提供加密密钥，用于加密、解密、签名和验签等操作。
     * 在身份验证和授权过程中，JWKS确保了JWT的完整性和安全性。
     *
     * @since 1.1.0
     */
    String KEYSTORE_NAME = "jwks.json";

    /**
     * Default ALG: RS256
     *
     * @since 1.1.0
     */
    String OIDC_ALG = AlgorithmIdentifiers.RSA_USING_SHA256;

    /**
     * OIDC key use: sig or enc
     *
     * @since 1.1.0
     */
    String USE_SIG = Use.SIGNATURE;
    String USE_ENC = Use.ENCRYPTION;

    /**
     * id_token constants
     *
     * @since 1.1.0
     */
    String ID_TOKEN = "id_token";

    /**
     * JWT keyid
     *
     * @since 1.1.0
     */
    String KEY_ID = JsonWebKey.KEY_ID_PARAMETER;

    String BJQ_SIGNUP_SMS_CODE = "signup:%s:sms_code";
    String BJQ_USER_PROFILE = "user:%s:profile";
}